﻿using DigDes.DSchool.SUPS.DataAccess.Interface;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing;

namespace DigDes.DSchool.SUPS.DataAccess.Database
{
    public class FileLoaderDAC : BaseDAC
    {
        // TODO: вынести общий функционал для подобных классов доступа к БД в общий класс BaseDAC

        // Сама строка хранится в app.config (web.config) файле исполняемого файла, который дёрнет метод этой библиотеки классов.
        // В нашем случае это DigDes.DSchool.SUPS.Test.App файл App.Config.

        public static void DoSomething(MyLoader1DTO row)
        {

            List<SqlParameter> parameters = new List<SqlParameter>();

            parameters.Add(new SqlParameter("@InventoryNumber",row.InventoryNumber));
            parameters.Add(new SqlParameter("@Weight", row.Weight));
            parameters.Add(new SqlParameter("@Destination",row.Destination));
            parameters.Add(new SqlParameter("@GoodCode",row.GoodCode));
            parameters.Add(new SqlParameter("@ReceiverCode",row.ReceiverCode));
            parameters.Add(new SqlParameter("@ParkType", row.ParkType));
            parameters.Add(new SqlParameter("@StartStation", row.StartStation));
            parameters.Add(new SqlParameter("@OperationCode",row.OperationCode));
            parameters.Add(new SqlParameter("@OperationDate", row.OperationDate));
            parameters.Add(new SqlParameter("@OperationYear",  row.OperationYear));
            parameters.Add(new SqlParameter("@OperationTime",  row.OperationTime));
            parameters.Add(new SqlParameter("@StationOfOperation", row.StationOfOperation));
            parameters.Add(new SqlParameter("@DeliveryRoad", row.DeliveryRoad));
            parameters.Add(new SqlParameter("@ReceptionRoad", row.ReceptionRoad));
            parameters.Add(new SqlParameter("@CoachIndex", row.CoachIndex));
            parameters.Add(new SqlParameter("@CoachNumber",row.CoachNumber));

            parameters.Add(new SqlParameter("@DestinationFK", row.Destination));
            parameters.Add(new SqlParameter("@GoodCodeFK", row.GoodCode));
            string ReceiverCode = "0000";
            parameters.Add(new SqlParameter("@ReceiverCodeFK", ReceiverCode));
            parameters.Add(new SqlParameter("@StartStationFK",row.StartStation));
            parameters.Add(new SqlParameter("@OperationCodeFK",  row.OperationCode));
            parameters.Add(new SqlParameter("@StationOfOperationFK",  row.StationOfOperation));
            parameters.Add(new SqlParameter("@DeliveryRoadFK",  row.DeliveryRoad));
            parameters.Add(new SqlParameter("@ReceptionRoadFK", row.ReceptionRoad));

            CoachDAC.InsertRow("InsertRows", parameters.ToArray());
        }


        public static void DoSomething2(IEnumerable<MyLoader1DTO> rows)
        {
            foreach (var row in rows)
                DoSomething(row);
        }
    }
}
